Musical harmony generators are machines that operate to produce a set of harmony signals that correspond to a given musical input signal. With such a machine, a musician can play a melody line while the machine generates the harmony lines, thereby allowing one musician to sound like several. Harmony generators that work with signals from musical instruments, such as guitars or synthesizers, have been well known for many years. Such devices generally operate by sampling an input signal and shifting its frequency to generate the harmonies.
In a periodic musical signal, there is always a fundamental frequency that determines the particular pitch of the signal as well as numerous harmonics, which provide character to the musical signal. It is the particular combination of the harmonic frequencies with the fundamental frequency that make, for example, a guitar and a violin playing the same note sound different from one another. In a musical instrument such as a guitar, flute, saxophone, or a keyboard, as the pitch of a note varies, the spectral envelope of the fundamental frequency and the harmonics expand or contract as the pitch is shifted up or down. Therefore, for musical instruments one can create harmony notes by sampling sound from the instrument and playing the sampled sound back at a rate either faster or slower, without the harmony notes sounding artificial. Although this method of generating harmonies works for musical instruments, it does not work well for generating vocal harmonies.
In a vocal signal, there is typically a fundamental frequency that determines the pitch of a note an individual is singing, as well as a set of harmonic frequencies that add character and timbre to the note. In contrast with a musical instrument, as the pitch of a vocal signal varies, the spectral envelope of the harmonics retains the same shape but the individual frequencies that make up the spectral envelope may change in magnitude. Therefore, generating harmony signals for the voice, by sampling a note as it is sung and varying its frequency, does not sound natural, because that method varies the shape of the spectral envelope. In order to generate harmony notes for a vocal signal, a method is required for varying the frequency of the fundamental, while maintaining the overall shape of the spectral envelope.
The inventors have found that the method, as set forth in the article, Lent, K., "An Efficient Method for Pitch Shifting Digitally Sampled Sounds," Computer Music Journal, Volume 13, No. 4, Winter, pp. 65-71 (1989) (hereafter referred to as the Lent method) is particularly suited for use in generating vocal harmonies because the method maintains the shape of the spectral envelope. However, the actual implementation of the Lent method, as set forth in the referenced paper, is computationally complex and difficult to implement in real time with inexpensive computing equipment. Additionally, the Lent method requires that the fundamental frequency of a signal be known exactly. However, a problem with generating harmony signals for a voice, is the fact that vocal signals are difficult to analyze and the Lent method does not address the problem of accurately determining the fundamental frequency of a complex vocal signal in the presence of noise. For instance, the fundamental frequency of a given note when sung may vary considerably, making it difficult for a harmony generator to determine the fundamental frequency and generate the proper harmony notes.
Therefore, the method used to generate vocal harmonic notes by shifting the pitch of a digitally sampled vocal signal should operate substantially in real time and use inexpensive computing equipment. This technique should thus provide a method of accurately analyzing an input vocal signal in order to generate a multipart vocal signal.